#include <vcl.h>
#pragma hdrstop

#include "Persiana.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)
Persiana::Persiana(float ancho, float grosor, float largo, float alto, int num) {
    this->num = num;
    this->alto = alto;
    this->ancho = ancho;
    this->largo = largo;
    this->grosor = grosor;
    initialize(num);
    Objeto3D* obj;
    rot = 0.85;
    sep = alto/num;

    for (int i=0; i<num; i++) {
        obj = new Tablero(ancho, grosor, largo, 3, 2, 2);
        obj->getMarco()->traslacion(0,i*sep,0);
        obj->getMarco()->rotacionX(rot);
        obj->setColor(50,50,200); // Azul claro
        insertarObjeto(obj);
    }

}

void Persiana::abrir(){
    if (rot>-0.85) {
        rot -= 0.05;
        repintar();
    }
};

void Persiana::cerrar(){
    if (rot<0.85) {
        rot += 0.05;
        repintar();
    }

};

void Persiana::subir(){
    if (sep>0) {
        sep -= 0.05;
        repintar();
    }

};

void Persiana::bajar(){
    if (sep<alto/num) {
        sep += 0.05;
        repintar();
    }
};

void Persiana::repintar() {
        for (int i=num-1; i>=0; i--) {
            eliminarObjeto(i);
        }
        Objeto3D* obj;
        for (int i=0; i<num; i++) {
            obj = new Tablero(ancho, grosor, largo, 3, 2, 2);
            obj->getMarco()->traslacion(0,alto-i*sep,0);
            obj->getMarco()->rotacionX(rot);
            obj->setColor(50,50,200); // Azul claro
            insertarObjeto(obj);
        }
};

